Many electronic devices comprise a screen which enables a presentation of information to a user of the device.
Typically, the screen forms a part of a display module, which comprises in addition a display driver. The display driver includes a frame memory storing the data for a current image which is to be displayed on the screen. The presentation on the screen is updated by the display driver position by position with data from the frame memory. The image data for a respective frame is usually provided to the display driver by a host. The host, as the main processing unit of the electronic device, may run applications requiring a presentation of images via the screen.
The display driver may provide the host with information on the currently updated position of the screen via a signal line, in order to allow the host to synchronize with the display driver. Synchronization is typically employed for critical moving image applications, like game and video applications. The position information can be generated for example from display module internal synchronization signals, in particular from a horizontal and a vertical synchronization signal. The vertical synchronization signal may be valid at the beginning of a frame, and the horizontal synchronization signal may be valid at the beginning of each line. In combination, these signals thus provide information on the current position.
The signal line may be activated by the display driver, for example, whenever a new frame in a moving image application is needed. In the host, an interrupt is generated from the active signal line, which initiates a Direct Memory Access (DMA) transfer of a further image to the display module.
Alternatively, the signal line may also be omitted. In this case, the data for a respective frame is transmitted without synchronization from the host to the frame memory.
The presentation on the screen may be subject to malfunctions. A malfunction can be caused by various external influences, like electrostatic discharge (ESD) pulses, electrical glitches, power shortages, etc.
External influences may change for example one bit or several bits in control registers of the display module. Further, they may corrupt images which are currently transferred via an internal bus in the display module. Moreover, external influences may stop for example a powering circuit or a timing circuit in the display module. Such disturbances may result in a blank display, in a presentation of corrupted data on the screen, or in a change of mode of the display.
So far, it is only possible to detect a malfunction of a display by means of a visual check.
In order to ensure a correct presentation nevertheless, software run by the host typically sends a refresh sequence to the display driver at regular intervals, for example every three seconds. The refresh sequence is used to rewrite all registers of the display module and the image data currently stored in the frame memory.
A software refresh, however, is not suited to recover a display from all possible malfunctions which may be caused by external influences. For example, if the powering circuit is affected such that it entered an abnormal state, a register refresh by software does not fix the error.
Such malfunctions in a display module can usually only be removed by rebooting the electronic device or by means of a separate hardware reset of the display driver.
In contrast to a software refresh, however, a hardware reset is not suited to be performed automatically on a regular basis, because a hardware reset causes visual effects on the screen. If a hardware reset was performed every three seconds, for example, this would result in a blank display every three seconds, which would be annoying to a user.
It is to be understood that a similar problem may occur with other hardware modules than a display module, if they are subject to external influences.